package com.itheima.day16反射机制与类加载.反射与类加载.反射类中的成员方法;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class Test {
    public static void main(String[] args) throws Exception {
        Class clazz = Class.forName("com.itheima.day16反射机制与类加载.反射与类加载.反射类中的成员方法.Student");
        Student stu = (Student) clazz.getDeclaredConstructor().newInstance();
        Method[] methods = clazz.getMethods();
        System.out.println("获取所有公共成员方法:");
        for (Method method : methods) {
            System.out.println(method);
        }
        System.out.println("获取所有成员方法:");
        for (Method d : clazz.getDeclaredMethods()) {
            System.out.println(d);
        }
        System.out.println("获取一个公共成员方法:");
        Method method = clazz.getMethod("toString");
        method.setAccessible(true);
        Object invoke = method.invoke(stu);
        System.out.println("toString方法:" + invoke);
        System.out.println("获取一个成员方法:");
        Method getName = clazz.getDeclaredMethod("getName");
        getName.setAccessible(true);
        Object invoke1 = getName.invoke(stu);
        System.out.println("getName:    "+invoke1);
    }
}
